package Controladores;

import EP.Ontologia.Ontologia;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.jdom.JDOMException;

/**
* @class ControladorOntologia
* @author Mauricio Alvarez.
* @brief Clase controlador Ontología.
*/
public class ControladorOntologia
{

    /**
     *  @var private Ontologia ontologia
     *  @brief Variable global de tipo clase Ontologia.
    */
    private Ontologia ontologia;


    //////////////////////////
    // CONSTRUCTOR
    //////////////////////////
    public ControladorOntologia()
    {
        ontologia = new Ontologia();
    }


    //////////////////////
    // OPERACIONES
    //////////////////////

    /**
     * @brief Invoca el método GuardarOntologia de la clase Ontologia.
     * @param no tiene.
     * @return void
    */
    public void GuardarOntologia() throws JDOMException, IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException
    {
        ontologia.GuardarOntologia();
    }



    /**
     * @brief Invoca el método BorrarOntologia de la clase Ontologia.
     * @param no tiene.
     * @return void
    */
    public void BorrarOntologia() throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException, SQLException
    {
        ontologia.BorrarOntologia();
    }



    /**
     * @brief Invoca el método GuardarSubtopicos de la clase Ontologia.
     * @param no tiene.
     * @return void
    */
    public void GuardarSubtopicos(List<String> ConceptosSemilla) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException, SQLException
    {
        ontologia.GuardarSubtopicos(ConceptosSemilla);
    }



     /**
     * @brief Invoca el método BorrarSubtopicos de la clase Ontologia.
     * @param no tiene.
     * @return void
    */
    public void BorrarSubtopicos() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException, IOException
    {
        ontologia.BorrarSubtopicos();
    }



    /**
     * @brief Invoca al método que genera las ramas de consulta de la ontologia.
     * @param TasaMuestreo y Nivel.
     * @return void
    */
    public void GenerarRamasConsultas(int TasaMuestreo, int Nivel) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException, SQLException
    {
        ontologia.GenerarRamasConsultas(TasaMuestreo, Nivel);
    }



    /**
     * @brief Invoca el método CargarOntologia de la clase Ontologia.
     * @param no tiene.
     * @return void
    */
    public Map<String,List> CargarOntologia() throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException, SQLException
    {
        return ontologia.CargarOntologia();
    }



    /**
     * @brief Invoca el método ExtraerConceptosTopico de la clase Ontologia.
     * @param no tiene.
     * @return void
    */
    public Map<String,List> ExtraerConceptosTopico(String Consulta) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException, SQLException
    {
        return ontologia.ExtraerConceptosTopico(Consulta);
    }


}//FIN ControladorOntologia